function quickSort(arr) {
  if (arr.length <= 1) {
    return arr;
  }

  const pivot = arr[0]; // 选择第一个元素作为基准点
  const left = [];
  const right = [];

  for (let i = 1; i < arr.length; i++) {
    if (arr[i] < pivot) {
      left.push(arr[i]); // 小于基准点的元素放在左侧数组
    } else {
      right.push(arr[i]); // 大于等于基准点的元素放在右侧数组
    }
  }

  // 递归调用对左右两侧数组进行排序，再将左侧数组、基准点、右侧数组合并起来
  return quickSort(left).concat(pivot, quickSort(right));
}

console.log(quickSort([5, 21, 3, 2, 14, 52, 110]));